﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //Task sxnpc = new Task("路人甲",NPCType.Task,"帮我送信");
            //sxnpc.Speak();
            //Console.WriteLine();

            //Task sgnpc = new Task("路人乙", NPCType.Task, "sha俩个回来");
            //sgnpc.Speak();
            //Console.WriteLine();

            //Task cjnpc = new Task("路人丙", NPCType.Task, "采集一点回来");
            //cjnpc.Speak();
            //Console.WriteLine();

            //Shop wq = new Shop("路人1", NPCType.Task, "大刀");
            //wq.Speak();
            //Console.WriteLine();

            //Shop cl = new Shop("路人2", NPCType.Task, "合成材料");
            //cl.Speak();
            //Console.WriteLine();

            //Shop sw = new Shop("路人3", NPCType.Task, "能吃的");
            //sw.Speak();
            //Console.WriteLine();

            //Iron xb = new Iron("路人a", NPCType.Task, "修补");
            //xb.Speak();
            //Console.WriteLine();

            //Iron qh = new Iron("路人b", NPCType.Task, "强化");
            //qh.Speak();
            //Console.WriteLine();

            //Iron dz = new Iron("路人c", NPCType.Task, "打造");
            //dz.Speak();
            //Console.WriteLine();


            //编写一个程序，以实现机器人的层次结构，此层次结构将至少包含抽象类机器人类Robot、
            //炒菜机器人类CookRobot、传菜机器人类DeliveryRobot。
            //Robot类应包含机器人姓名name字段、机器人工作的方法Working()，
            //该方法应该在子类中被实现，机器人工作的方式很多，所以Working()方法应该被定义为抽象方法。
            //可以在CookRobot中添加一个代表菜的类型的字段，用枚举类型；在DeliveryRobot中添加一个代表连续工作时长的字段hours。
            //CookRobot和DeliveryRobot应实现具体的Working()方法。
            //在主类中定义一个方法，形参数据类型是string，返回值数据类型是Robot，方法中实现如果传入的字符串是“炒菜”，
            //那就返回CookRobot的实例（当然是要用Robot的引用指向的），如果传入的字符串是“传菜”，
            //那就返回DeliveryRobot的实例。
            //Main方法中：用户输入所选择的机器人的功能，根据用户的输入Robot执行对应的功能。


            Console.WriteLine("1.1号炒菜机器人，2.2号传菜机器人");
            int a =int.Parse(Console.ReadLine());
            if (a == 1)
            {
                chose("炒菜");
            }
            else if (a == 2)
            {
                chose("传菜");
            }
            Console.ReadKey();
        }
        public static RobotType chose(string c)
        {
            Console.WriteLine("输入要干嘛");
            string a = Console.ReadLine();
            if (a == "炒菜")
            {
                CookRobot b = new CookRobot("机器人1号", RobotType.CookRobot, "佛跳墙");
                b.Working();
                Console.WriteLine();
            }
            else if (a == "传菜")
            {
                DeliveryRobot g = new DeliveryRobot("机器人2号", RobotType.DeliveryRobot, "上菜了");
                g.Working();
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine("输入错误！！！");
            }
            RobotType cc = new RobotType();
            return cc;
        }
    }
}
